local user_settings = require("core.utils").user_plugin_opts("default_theme", {})

local lsp = {
  DiagnosticError = { fg = C.red_1, style = user_settings.diagnostics_style },
  DiagnosticWarn = { fg = C.orange_1, style = user_settings.diagnostics_style },
  DiagnosticInfo = { fg = C.white_2, style = user_settings.diagnostics_style },
  DiagnosticHint = { fg = C.yellow_1, style = user_settings.diagnostics_style },
  DiagnosticUnderlineError = { style = "undercurl", sp = C.red_2 },
  DiagnosticUnderlineWarn = { style = "undercurl", sp = C.red_2 },
  DiagnosticUnderlineInfo = { style = "undercurl", sp = C.red_2 },
  DiagnosticUnderlineHint = { style = "undercurl", sp = C.red_2 },
  LspReferenceText = { fg = C.none, bg = C.grey_5 },
  LspReferenceRead = { fg = C.none, bg = C.grey_5 },
  LspReferenceWrite = { fg = C.none, bg = C.grey_5 },
  LspSagaDiagnosticBorder = { fg = C.white_1 },
  LspSagaSignatureHelpBorder = { fg = C.white_1 },
  LspSagaLspFinderBorder = { fg = C.white_1 },
  LspSagaCodeActionBorder = { fg = C.white_1 },
  LspSagaDefPreviewBorder = { fg = C.white_1 },
  LspSagaHoverBorder = { fg = C.white_1 },
  LspSagaRenameBorder = { fg = C.white_1 },
  LspSagaRenamePromptPrefix = { fg = C.white_1 },
  LspFloatWinBorder = { fg = C.white_1 },
  LspSagaDiagnosticTruncateLine = { fg = C.white_1 },
  LspSagaShTruncateLine = { fg = C.white_1 },
  LspSagaDocTruncateLine = { fg = C.white_1 },
  LspSagaCodeActionTruncateLine = { fg = C.white_1 },
  ProviderTruncateLine = { fg = C.white_1 },
  DiagnosticTruncateLine = { fg = C.white_1, style = "bold" },
  LspSagaCodeActionTitle = { fg = C.yellow, style = "bold" },
  LspSagaCodeActionContent = { fg = C.green, style = "bold" },
  LspFloatWinNormal = { fg = C.fg, bg = C.black_1 },
  LspDiagnosticsFloatingError = { fg = C.red_1 },
  LspDiagnosticsFloatingWarn = { fg = C.orange_1 },
  LspDiagnosticsFloatingInfor = { fg = C.white_2 },
  LspDiagnosticsFloatingHint = { fg = C.yellow_1 },
  LspSagaDiagnosticHeader = { fg = C.yellow },
  LspSagaBorderTitle = { fg = C.yellow, style = "bold" },
  DiagnosticInformation = { fg = C.yellow, style = "bold" },
}

return lsp
